Dependence-Cache Slicing: A Program Slicing Method Using Lightweight Dynamic Information
نویسندگان
چکیده
When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising technique used to extract a program portion; however, such slicing sometimes raises difficulties. Static slicing sometimes produces a large portion of a source program, especially for programs with array and pointer variables, and dynamic slicing requires unacceptably large run-time overhead. In this paper, we propose a slicing method named “dependence-cache slicing”, which uses both static and dynamic information. An algorithm has been implemented in our experimental slicing system, and execution data for several sample programs have been collected. The results show that dependence-cache slicing reduces a slice size by 30–90% from static slice size with an increased and affordable run-time overhead, even for programs using array variables. In the future, the dependence-cache slicing will become an important feature for effective debugging environments.
منابع مشابه
A Slicing Method for Object-Oriented Programs Using Lightweight Dynamic Information
Program slicing has been used for efficient program debugging activities. Program slice is computed by analyzing dependence relations between program statements. We can divide dependence analyses into two categories, static and dynamic; the former requires little analysis costs, but the resulting slices are large. The latter has opposite characters. In this paper, we propose a program slicing m...
متن کاملLightweight Semi-Dynamic Methods for EÆcient and E ective Program Slicing
When we try to debug a large program e ectively, it is very important to separate a suspicious program portion from the overall source program. Program slicing is a promising technique to extract a program portion; however, it remains diÆcult issues. Static slicing sometimes produces a large portion of the source program, especially for a program with arrays and pointers. Dynamic slicing requir...
متن کاملA New Method to Compute Dynamic Slicing using Program Dependence Graph
Program slicing is one of the techniques of program analysis that allows an analyst to automatically extract portions of programs relevant to the program being analyzed. It is an alternative approach to develop reusable components from existing software. It is a very important part of software development and maintenance. It is used in a number of applications such as program analysis, program ...
متن کاملDYBS: A Lightweight Dynamic Slicing Framework for Diagnosing Attacks on x86 Binary Programs
Nowadays, applications are usually large-scale, this making tasks of comprehending and debugging software rather complicated. As a dynamic reduction technique for simplifying programs, dynamic program slicing is an effective and important approach for locating and diagnosing software attacks. However, most of the existing dynamic slicing tools perform slicing at the source code level, but the s...
متن کاملA Program Slicer Using Def-Slice-Use Tables for Efficiently Slicing Both User-Defined and Library Functions
Program slicing is a technique for statically analyzing a program and extracting an executable sub-program, which is called a program slice, from the original program. This technique has been widely applied to program testing, debugging and maintenance. This paper presents a slicing method for extracting program slices from a program that calls library functions, which are provided as object co...
متن کامل